#include<iostream>

using namespace std;
const int N=1e5+10;
int tree[N*32][2];
int idx;
int numset[N];
void insert(int x)
{
	int cur=0;
	for(int i=31;i>=0;i--)
	{
		int path=(x>>i)&1;
		if(tree[cur][path]==0)
		{
			tree[cur][path]=++idx;
		}
		cur=tree[cur][path];
	}
}

int find(int x)
{
	int cur=0;
	int ret=0;
	for(int i=31;i>=0;i--)
	{
		int path=((x>>i)&1);
		if(tree[cur][path^1])
		{
			ret|=(1<<i);
			cur=tree[cur][path^1];
		}
		else 
		{
			cur=tree[cur][path];
		}
	}

	return ret;

}
int main()
{
	int n;cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>numset[i];
		insert(numset[i]);
	}

	int ret=0;
	for(int i=1;i<=n;i++)
	{
		ret=max(ret,find(numset[i]));
	}

	cout<<ret<<endl;
}